import type { TableProps } from 'element-plus'
// 类型
export interface IContentConfig<T = any> {
    // 页面名称(参与组成权限标识,如sys:user:xxx)
    pageName: string
    // table组件属性
    table?: Omit<TableProps<any>, 'data'>
    // 列表的网络请求函数(需返回promise)
    indexAction: (queryParams: T) => Promise<any>
    // 删除的网络请求函数(需返回promise)
    deleteAction?: (ids: string) => Promise<any>
    // 导出的网络请求函数(需返回promise)
    exportAction?: (queryParams: T) => Promise<any>
    // 主键名(默认为id)
    pk?: string
    // 表格工具栏(默认支持add,delete,export,也可自定义)
    toolbar?: Array<
        | 'add'
        | 'delete'
        | 'export'
        | {
              auth: string
              icon?: string
              name: string
              text: string
          }
    >
    // 表格工具栏右侧图标
    defaultToolbar?: ('refresh' | 'filter')[]
    // table组件列属性(额外的属性templet,operat,slotName)
    cols: Array<{
        type?: 'default' | 'selection' | 'index' | 'expand'
        label?: string
        prop?: string
        width?: string | number
        align?: 'left' | 'center' | 'right'
        templet?:
            | 'image'
            | 'list'
            | 'url'
            | 'price'
            | 'percent'
            | 'icon'
            | 'date'
            | 'tool'
            | 'custom'
        imageWidth?: number
        imageHeight?: number
        selectList?: Record<string, any>
        priceFormat?: string
        dateFormat?: string
        operat?: Array<
            | 'edit'
            | 'delete'
            | {
                  auth: string
                  icon?: string
                  name: string
                  text: string
              }
        >
        [key: string]: any
    }>
}
// 对象类型
export type IObject = Record<string, any>
// 定义接收的属性
export interface IOperatData {
    name: string
    row: any
    column: any
    $index: number
}
